package cenas;

import org.anddev.andengine.audio.sound.SoundManager;
import org.anddev.andengine.entity.scene.Scene;
import org.anddev.andengine.entity.sprite.Sprite;
import org.anddev.andengine.input.touch.TouchEvent;
import org.anddev.andengine.opengl.texture.TextureManager;
import org.anddev.andengine.opengl.texture.TextureOptions;
import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
import org.anddev.andengine.opengl.texture.region.TextureRegion;

import pi.gold.GerenciamentoDeCenas;
import android.content.Context;
import assets.Botao;

public class EscolhaDeNiveis extends Scene {
	public int largura;
	public int altura;
	
	Context contexto;
	GerenciamentoDeCenas trocaDeCenas;
	
	private BitmapTextureAtlas mapaDeTexturas;
	private TextureRegion regiaoDaTextura, regiaoDaTextura2, botaoDeEscolhaDeNiveis;

	public EscolhaDeNiveis(GerenciamentoDeCenas trocaDeCenas, Context contexto, int largura, int altura, TextureManager tm, SoundManager sm){
		this.contexto = contexto;
		this.trocaDeCenas = trocaDeCenas;

		BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");

		mapaDeTexturas = new BitmapTextureAtlas(1024, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
		regiaoDaTextura = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mapaDeTexturas, contexto, "Cenario.png", 0, 0);
		tm.loadTexture(mapaDeTexturas);
		mapaDeTexturas = new BitmapTextureAtlas(1024, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
		regiaoDaTextura2 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mapaDeTexturas, contexto, "Escolha de niveis.png", 0, 0);
		tm.loadTexture(mapaDeTexturas);
		Sprite cenario = new Sprite(0, 0, regiaoDaTextura);
		Sprite logotipo = new Sprite(0, 50, regiaoDaTextura2);
		attachChild(cenario);
		attachChild(logotipo);

		setTouchAreaBindingEnabled(true);

		criaBotoesDeEscolhaDeNiveis(tm);
	}

	public void criaBotoesDeEscolhaDeNiveis(TextureManager tm) {
		mapaDeTexturas = new BitmapTextureAtlas(256, 512, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
		botaoDeEscolhaDeNiveis = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mapaDeTexturas, contexto, "Botao de escolha de nivel.png", 0, 0);
		tm.loadTexture(mapaDeTexturas);

		Sprite botao1 = criaBotao(50, 150, "tmx/Nivel 1.tmx");
		Sprite botao2 = criaBotao(300, 150, "tmx/Nivel 2.tmx");
		Sprite botao3 = criaBotao(550, 150, "tmx/Nivel 3.tmx");
	}

	public Sprite criaBotao(int x, int y, final String arquivo) {
		Sprite botao = new Sprite(x, y, botaoDeEscolhaDeNiveis) {
			@Override
			public boolean onAreaTouched(final TouchEvent toque, final float xDoToque, final float yDoToque) {
				if(toque.isActionDown()){
					trocaDeCenas.inicializaNivel(arquivo);
				}
				return false;
			}
		};
		attachChild(botao);
		registerTouchArea(botao);
		return botao;
	}
}